package com.hyw.cm.server.storage.dao;

import java.util.Map;
import java.util.Optional;

import com.hyw.cm.common.dto.CEntry;

/**
 * 集群环境下的，多机并连，需要维护任意一个设备与其所在IP的关系.
 * <p>
 * 同时，考虑到共享存储的数据时效性，需要对设备添加超时退出机制。一般采用定时器实现。
 * <p>
 * 对于存储关联关系且需要做“超期”处理的，因与业务存储有依赖关系，则，由开发者自行实行，
 * 
 * @author Hongyu
 */
public interface IConnectionRepository {

  /**
   * @param equiementId
   * @param entry
   * @param serverId
   *          当前的服务器ID
   * @param expiredAt
   *          连接超时时间，主要是共享内存里的维护
   */
  public void add(String equiementId, CEntry<String, Integer> entry, String serverId, long expiredAt);

  public void touch(String equiementId, long expiredAt);

  public void remove(String equiementId);

  public Optional<CEntry<String, Integer>> findById(String equiementId);

  public Map<String, CEntry<String, Integer>> findAll();

}
